package temp;

import java.util.Date;
import java.util.List;

import pe.adra.core.dao.Entidad;
import pe.adra.core.ext.soporte.SuportEntidad;
import pe.adra.util.exception.ServiceException;

/**
 * @author Danielle Delgado
 * 
 */
public interface ICrudService<T extends Entidad> {
	/**
	 * Metodo para obtener todos los objetos
	 */
	public List<T> getTodos() throws ServiceException;

	/**
	 * 
	 * @param filtro
	 * @param finit
	 * @param ffin
	 * @param inicio
	 * @param fin
	 * @param strSort
	 * @param strOrder
	 * @param innerjoin
	 * @return
	 * @throws ServiceException
	 */
	public List<T> getListaAsiento(T filtro, Date finit, Date ffin, int inicio, int fin, String strSort, String strOrder, SuportEntidad... innerjoin) throws ServiceException;

	/**
	 * Metodo donde guarda o actualiza el objeto
	 */
	public void guardar(T objeto) throws ServiceException;

	/**
	 * Metodo donde guarda o actualiza el objeto
	 */
	public T obtener(Long id) throws ServiceException;

	/**
	 * Metodo para cambiarActivo
	 */
	public void cambiarActivo(Long id) throws ServiceException;


}
